/*
 * Operaciones con el rut chileno.
 */

/**
 *
 * @author Juan Padilla Delgado
 * MEMORISTA INGENIERÍA INFORMÁTICA
 * TRABAJO DE TÍTULO
 */
package triaje;
public class Rut {

    // dv es un valor numérico, el valor 11 es la k y el valor 10 es el cero.
    private boolean modulo11(int number, int dv)
    {
        int rut = number;

        int suma=0;
        int i=10;
        int mod=2;

        while(rut > 0)
        {
            suma = suma + (rut%i)*mod;
            rut=(rut-rut%i)/i;

            mod++;
            if(mod>7) mod=2;
        }
        
        int digito = 11 - suma%11;

        if(0 < digito && digito < 12 && digito == dv ) return true;
        else return false;
    }
    public void verificar_rut (int rut, char caracter)
    {
        int dv=0;
        //convertir dv a int
        if(caracter == '1') dv=1;
        if(caracter == '2') dv=2;
        if(caracter == '3') dv=3;
        if(caracter == '4') dv=4;
        if(caracter == '5') dv=5;
        if(caracter == '6') dv=6;
        if(caracter == '7') dv=7;
        if(caracter == '8') dv=8;
        if(caracter == '9') dv=9;
        if(caracter == 'k') dv=10;
        if(caracter == '0') dv=11;
        //fin convertir dv a int
        boolean bool = modulo11(rut, dv);

        if(bool) System.out.println("el rut es correcto");
        else System.out.println("el rut es incorrecto");
    }

}
